At the beginning of our
signal processing class, we have defined
the concept of signal as the description of the evolution of
a natural phenomenon. The language that
we have chosen for this description is the
language of discrete time. So that for us, a signal is as countable sequence
of complex numbers. But there are other disciplines
in science and in engineering that use a different
language, for instance, in physics or in electronics
signal would be defined as a function of a continuous time variable expressed in seconds, a variable that represents time. So we have two competing
views of the world. The world's the same, but some people describe the world in so-called analog terms using calculus and functions
of a real variable time, and other people like
DSP engineers such as ourselves, adopt on the other hand, a digital view of the world
in which things are described in terms of countable sequences
and integer numbers. So let's go back
to the concept of a signal being the description
of a natural phenomenon. According to the worldview
that you subscribe to, you will describe this phenomenon
using different tools. In the digital worldview,
for instance, time would be represented by a countable integer index n that doesn't have
a physical dimension. It only indicates the order in which the signal samples occur. In the analog worldview
on the other hand, time would be expressed
in the physical unit of seconds and represented by
a real valued variable. In the digital world as we know, the signal values themselves represent a sequence
of complex numbers, and we require
the sequence to be square summable in order to ensure that the phenomenon
has finite energy. In the analog world, we
will use on the other hand a function of a real variable t
representing time, and the concept of
finite energy is indicated by the fact that the function should be square integrable. Frequency in the digital world is represented by a
dimensionless variable Omega, and we know that we can choose any 2Pi wide interval
to represent all possible values for this
frequency because there is a maximum angular frequency that we can have in the digital world. We cannot go too fast. In the analog worldview
on the other hand, there is no such limit. So frequency is represented
by a real valued variable f whose physical units are
one over seconds or hertz, and f can range from minus
infinity to plus infinity, so there is no limit to the maximum frequency that we can have in the analog world. Fourier analysis in
the digital world is a mapping from square summable sequences to square integrable functions. There are 2Pi periodic. The same concept applies
to the analog world. The Fourier transform will map a square integrable function to another square
integrable function, which in this case however, is no longer periodic, and has the potential
infinite support over the frequency axis. So we have two
different languages to describe the same phenomenon. Our question now is, can we bridge the gap between the digital worldview
and the analog worldview? Why would we want to do that? Well, consider the situation
where for instance, you have a purely
digital signal here like the output of
some digital synthesizer, and you want to play the sound over an analog loudspeaker. So the language here for the amplifier and
the circuits that are inside this analog device is the
language of the analog world, and language here is the
language of the digital world. The device that managed
to bridge this gap is, in the case of your computer, the sound card which performs an interpolation
between the sequence of discrete time samples
to a function of a real variable t that
the electronics can understand. Similarly, suppose you have
a microphone and you want to record the sound and then
use it in a digital device, well, here we're using the
language of the analog world. Here, we're using the language
of the digital world, and the gap is bridged again by the sound card that
works as a sampler. It samples the analog
function here into a sequence of values that this be algorithms
can understand. So the idea is that we
have a circle if you want between the analog world
and the digital world, and we go from
the analog world to the digital world via a sampling, and we can go back to the
analog world via interpolation. The question is, do we lose
information when we perform these operations or
are these two worlds perfectly compatible and
only the language changes? As we know, it's much more
convenient nowadays to perform all over processing
in the digital domain. So according to the type of application that
we're designing, there will be three prototypical cases in which we will have to use sampling and\or
interpolation. In the first case, we want to process
signals that come from the analog world and put the result back out
in the analog world. So the input will
be continuous time, the output also continuous time, but the processing
will be done in discrete time for
efficiency reasons. So what we have is, of course, a sampler here and interpolator here that perform
this conversion. A typical example is
modern telephony where the speaker and the listener are both analog of
entities human beings, but everything that transits in the chain of
processing and brings the voice from the caller to the receiver is done
in the digital domain. Sound effects for guitars would be another classical example, used to be done in
analog circuitry, nowadays it's cheaper and more versatile to do them
in discrete time. A second case is where we take a discrete time input that we synthesize in our digital domain, typically a communication
system that takes digital data and transforms that into an analogue
signal to be put out on, say a telephone cable
or a radio link. So the input is discrete time, the output is continuous time, and there will be therefore
an interpolator that bridges the gap between our digital processing
and the analog world. So music synthesizers
are classic example, computer graphics, video games, worlds that are perfectly
defined digitally, but need to be brought out
for fruition to analog users. Finally, we have the converse situation
in which we start from a continuous time signal and the output of
our processing chain is a discrete time signal. Typically, we want to
do that when we want to store analog information
on digital medium. Storage and compression
of audio or photograph, so is a classic example, but also control systems
and monitoring and other devices that use
the digital data only.